import cloneDeep from 'lodash.clonedeep';

export function convertRoutes(nodes) {
  if (!nodes) return null;

  nodes = cloneDeep(nodes);

  let queue = Array.isArray(nodes) ? nodes.concat() : [nodes];

  while (queue.length) {
    const levelSize = queue.length;

    for (let i = 0; i < levelSize; i++) {
      const node = queue.shift();

      if (!node.children || !node.children.length) continue;

      node.children.forEach(child => {
        // 转化相对路径
        if (child.path[0] !== '/' && !child.path.startsWith('http')) {
          child.path = node.path.replace(/(\w*)[/]*$/, `$1/${child.path}`);
        }
      });

      queue = queue.concat(node.children);
    }
  }

  return nodes;
}
